
Por tratarse de un trabajo introductorio al lenguaje \CPPLANG \space no se pidió nada acerca del diseño del programa, sin embargo se intentó escribir código que fuera lo mas genérico posible, reutilizando lo mas posible del código, por esto se decidió utilizar la herencia de clases para representar los distintos conceptos que representan las imágenes, además se intento escribir código que fuera realmente código \CPPLANG \space y no código \CLANG \space usando objetos.
Dado que no había exigencias específicas, algunas partes no se escribieron de la forma en que se haría si se tratara de un programa \quotemarks{real}, sino que se optó por una forma sencilla de hacerlo, por ejemplo en la decisión de que estructuras de datos y métodos pertenecían a la clase base y cuales a las derivadas se podría haber sido mas estricto, dejando a la clase base como solo una interfaz sin ningún dato, algo similar se puede decir de las clases que representan los pixeles, también la forma en que se decidió implementar los operadores en la clase base y hacerlos polimórficos con llamadas a funciones virtuales, tal ves no sea la mejor forma, también la forma sumamente sencilla en que está implementada la \quotemarks{fábrica} de clases, esta podría haber sido mucho mas genérica y usar un método mas adecuado para la determinación de la clase de imagen, que el método de un campo de identificación de clases.\\
Siguiendo la idea de escribir código que fuera \CPPLANG \space se reescribió la clase de procesamiento de la línea de comandos \quotemarks{cmdline}, proveída por los docentes, que era una versión híbrida \CLANG \textbackslash \CPPLANG \space para convertirla en una clase al estilo \CPPLANG, la idea es que sirva para los trabajos siguientes, para esto se le agregó la capacidad de procesar opciones con varios argumentos y el procesamiento de parámetros que no sean opciones, también genera en forma automática las opciones \quotemarks{--help} y \quotemarks{--version}.
